import React from 'react';
import { render } from 'ink';
import App from './components/App';
import { setupGlobalErrorHandlers } from './utils/errorHandler';
import { LogManager } from './services/logManager';
import { configManager } from './services/config';

// 初始化日志系统
async function initializeLogging() {
  try {
    // 加载配置
    await configManager.loadConfig();
    const logConfig = configManager.getLogConfig();
    
    // 初始化日志管理器
    const logManager = LogManager.getInstance(logConfig);
    await logManager.initialize();
    
    console.log('日志系统初始化成功');
  } catch (error) {
    console.warn('日志系统初始化失败，将使用默认控制台输出:', error);
  }
}

// 主函数
async function main() {
  // 先初始化日志系统
  await initializeLogging();
  
  // 然后设置全局错误处理
  setupGlobalErrorHandlers();

  // 解析命令行参数
  const args = process.argv.slice(2);
  let autoQuestion: string | undefined;

  // 查找 --a 参数
  const aIndex = args.findIndex(arg => arg === '--a');
  if (aIndex !== -1 && aIndex + 1 < args.length) {
    autoQuestion = args[aIndex + 1];
  }

  // 渲染应用，传入自动问题
  render(<App autoQuestion={autoQuestion} />);
}

// 运行主函数
main().catch(error => {
  console.error('应用启动失败:', error);
  process.exit(1);
});